pbe system
Multi-Intent Detection in User Provided Annotations for Programming by Examples Systems
Kumar, Nischal Ashok, Gupta, Nitin, Guttula, Shanmukha, Patel, Hima
In mapping enterprise applications, data mapping remains a fundamental part of integration development, but its time consuming. An increasing number of applications lack naming standards, and nested field structures further add complexity for the integration developers. Once the mapping is done, data transformation is the next challenge for the users since each application expects data to be in a certain format. Also, while building integration flow, developers need to understand the format of the source and target data field and come up with transformation program that can change data from source to target format. The problem of automatic generation of a transformation program through program synthesis paradigm from some specifications has been studied since the early days of Artificial Intelligence (AI). Programming by Example (PBE) is one such kind of technique that targets automatic inferencing of a computer program to accomplish a format or string conversion task from user-provided input and output samples. To learn the correct intent, a diverse set of samples from the user is required. However, there is a possibility that the user fails to provide a diverse set of samples. This can lead to multiple intents or ambiguity in the input and output samples. Hence, PBE systems can get confused in generating the correct intent program. In this paper, we propose a deep neural network based ambiguity prediction model, which analyzes the input-output strings and maps them to a different set of properties responsible for multiple intent. Users can analyze these properties and accordingly can provide new samples or modify existing samples which can help in building a better PBE system for mapping enterprise applications.
- Asia > India (0.04)
- North America > United States (0.04)
Quantitative Programming by Examples
Gulwani, Sumit, Pathak, Kunal, Radhakrishna, Arjun, Tiwari, Ashish, Udupa, Abhishek
Programming-by-Example (PBE) systems synthesize an intended program in some (relatively constrained) domain-specific language from a small number of input-output examples provided by the user. In this paper, we motivate and define the problem of quantitative PBE (qPBE) that relates to synthesizing an intended program over an underlying (real world) programming language that also minimizes a given quantitative cost function. We present a modular approach for solving qPBE that consists of three phases: intent disambiguation, global search, and local search. On two concrete objectives, namely program performance and size, our qPBE procedure achieves $1.53 X$ and $1.26 X$ improvement respectively over the baseline FlashFill PBE system, averaged over $701$ benchmarks. Our detailed experiments validate the design of our procedure and show the value of combining global and local search for qPBE.
Disjunctive Program Synthesis: A Robust Approach to Programming by Example
Raza, Mohammad (Microsoft Corporation) | Gulwani, Sumit (Microsoft Corporation)
Programming by example (PBE) systems allow end users to easily create programs by providing a few input-output examples to specify their intended task. The system attempts to generate a program in a domain specific language (DSL) that satisfies the given examples. However, a key challenge faced by existing PBE techniques is to ensure the robustness of the programs that are synthesized from a small number of examples, as these programs often fail when applied to new inputs. This is because there can be many possible programs satisfying a small number of examples, and the PBE system has to somehow rank between these candidates and choose the correct one without any further information from the user. In this work we present a different approach to PBE in which the system avoids making a ranking decision at the synthesis stage, by instead synthesizing a disjunctive program that includes the many top-ranked programs as possible alternatives and selects between these different choices upon execution on a new input. This delayed choice brings the important benefit of comparing the possible outputs produced by the different disjuncts on a given input at execution time. We present a generic framework for synthesizing such disjunctive programs in arbitrary DSLs, and describe two concrete implementations of disjunctive synthesis in the practical domains of data extraction from plain text and HTML documents. We present an evaluation showing the significant increase in robustness achieved with our disjunctive approach, as illustrated by an increase from 59% to 93% of tasks for which correct programs can be learnt from a single example.
- Information Technology > Artificial Intelligence > Machine Learning (1.00)
- Information Technology > Data Science (0.88)
- Information Technology > Artificial Intelligence > Representation & Reasoning > Logic & Formal Reasoning (0.51)
- Information Technology > Artificial Intelligence > Natural Language > Text Processing (0.46)
Integrating Programming by Example and Natural Language Programming
Manshadi, Mehdi H. (University of Rochester) | Gildea, Daniel (Department of Computer Science) | Allen, James F. (University of Rochester)
We motivate the integration of programming by example and natural language programming by developing a system for specifying programs for simple text editing operations based on regular expressions. The programs are described with unconstrained natural language instructions, and providing one or more examples of input/output. We show that natural language allows the system to deduce the correct program much more often and much faster than is possible with the input/output example(s) alone, showing that natural language programming and programming by example can be combined in a way that overcomes the ambiguities that both methods suffer from individually, while providing a more natural interface to the user.
- Asia > Middle East > Jordan (0.05)
- North America > United States > California > Orange County > Orange (0.04)
- North America > United States > New York > Monroe County > Rochester (0.04)
- Europe > United Kingdom > England > Greater London > London (0.04)
Textual Features for Programming by Example
Menon, Aditya Krishna, Tamuz, Omer, Gulwani, Sumit, Lampson, Butler, Kalai, Adam Tauman
In Programming by Example, a system attempts to infer a program from input and output examples, generally by searching for a composition of certain base functions. Performing a naive brute force search is infeasible for even mildly involved tasks. We note that the examples themselves often present clues as to which functions to compose, and how to rank the resulting programs. In text processing, which is our domain of interest, clues arise from simple textual features: for example, if parts of the input and output strings are permutations of one another, this suggests that sorting may be useful. We describe a system that learns the reliability of such clues, allowing for faster search and a principled ranking over programs. Experiments on a prototype of this system show that this learning scheme facilitates efficient inference on a range of text processing tasks.
- North America > United States > Massachusetts > Middlesex County > Cambridge (0.05)
- Oceania > Australia (0.04)
- North America > United States > Washington > King County > Redmond (0.04)
- (4 more...)
Using the Crowd to Do Natural Language Programming
Manshadi, Mehdi (University of Rochester) | Keenan, Carolyn (University of Rochester) | Allen, James (University of Rochester)
Natural language programming has proven to be a very challenging task. We present a novel idea which suggests using crowdsourcing to do natural language programming. Our approach asks non-expert workers to provide input/output examples for a task defined in natural language form. We then use a Programming by Example system to induce the intended program from the input/output examples. Our early results are promising, encouraging further research in this area.
- Asia > Middle East > Jordan (0.06)
- North America > United States > New York > New York County > New York City (0.05)
- North America > United States > Massachusetts > Middlesex County > Cambridge (0.05)